Inicializace recordu

Otázka od: Lebeda David

10. 9. 2004 14:44

Ahoj,

mam record obsahujici promenne typu integer a string (rozumi se
AnsiString), napr.
        rec = record
           ID: integer;
          p1, p2: string;
        end;
 
Kdyz ho chci inicializovat, zavolam
ZeroMemory(@rec, sizeof(rec));

Pokud record dosud neobsahoval zadna data, je vse OK. Co kdyz ale
jiz byl naplnen daty a ja se ho pokusim takto smazat? Jde mi o to, zda
se radne uvolni i ty stringove promenne v recordu. Zmizi na ne odkaz,
ale uvolni se i retezec samotny?

David Lebeda

Odpovedá: delphin@post.cz

10. 9. 2004 16:18

> mam record obsahujici promenne typu integer a string (rozumi se
> AnsiString), napr.
> rec = record
> ID: integer;
> p1, p2: string;
> end;
>
> Kdyz ho chci inicializovat, zavolam
> ZeroMemory(@rec, sizeof(rec));
>
> Pokud record dosud neobsahoval zadna data, je vse OK. Co kdyz ale
> jiz byl naplnen daty a ja se ho pokusim takto smazat? Jde mi o to, zda
> se radne uvolni i ty stringove promenne v recordu. Zmizi na ne odkaz,
> ale uvolni se i retezec samotny?

Retezec se neuvolni. Je treba pouzit Finalize, dalsi info v helpu k
Finalize.